const path = require('path');
const htmlWebpackPlugin = require('html-webpack-plugin');
const VueLoaderPlugin = require('vue-loader/lib/plugin');

module.exports = {
  mode: 'production',
  entry: path.join(__dirname, './src/main.js'),//打包的入口文件路径
  output: {
    path: path.join(__dirname, './dist'),//打包的出口文件夹
    filename: 'bundle.js'//打包的文件名
  },
  plugins: [
    new htmlWebpackPlugin({
      template: path.join(__dirname, './src/index.html'),//指定的 模版文件 将来会在内存中生成一个和这个模版文件一样的文件放在项目的根目录中
      filename: 'index.html'//要生成的 放在内存中的 文件名称
    }),
    new VueLoaderPlugin()
  ],
  module: {//该节点用于配置所有的 第三方模块 加载器
    rules: [//模块匹配规则
      {test: /\.css$/, use: ['style-loader', 'css-loader']},
      {test: /\.less$/, use: ['style-loader', 'css-loader', 'less-loader']},
      {test: /\.scss$/, use: ['style-loader', 'css-loader', 'sass-loader']},
      {test: /\.(ttf|eot|svg|woff|woff2)$/, use: 'url-loader'},
      {test: /\.(jpg|png|gif|bmp|jpeg)$/, use: [{loader:'url-loader?limit=7630&name=[hash:8]-[name].[ext]',options:{esModule: false}}]},
      {test: /\.js$/, use: 'babel-loader', exclude: /node_modules/},
      {test: /\.vue$/, use: 'vue-loader'},

    ]
  },
  performance: {
    hints: 'warning', // 枚举 false关闭
    maxEntrypointSize: 50000000, //入口文件的最大体积，单位字节
    maxAssetSize: 30000000, //生成文件的最大体积，单位字节
    assetFilter: function(assetFilename) { //只给出js文件的性能提示
      return assetFilename.endsWith('.js');
    }
  }

};